1/21—Introduction
Reading: §1.2
1/23—Stable matching: Gale–Shapley algorithm
Reading: §1.1
1/26—Greedy algorithms I: Interval scheduling
Reading: §4.1
1/28—Greedy algorithms II: Minimizing lateness
Reading: §4.2
1/29—Homework 1 due
1/30—Greedy algorithms III: Minimum Spanning Tree
Reading: §4.5–4.6,
2/02—Greedy algorithms IV: Union-find data structure
Reading: §4.6
2/04—Dynamic programming I: Weighted interval scheduling
Reading: §6.1
2/05—Homework 2 due
2/06—Dynamic programming II: Segmented least squares
Reading: §6.3
2/09—Dynamic programming III: Sequence alignment
Reading: §6.6
2/11—Dynamic programming IV: Knapsack
Reading: §6.4
2/12—Homework 3 due
2/13—Dynamic programming V: Bellman–Ford algorithm
Reading: §6.8
(Feburary break)
2/18—Divide & Conquer I: Closest pair of points
Reading: §5.4
2/20—Divide & Conquer II: Integer multiplication
Reading: §5.5
2/22—Optional review session
2/23—Divide & Conquer III: Randomized median finding
Reading: §13.5
2/24—Prelim I
2/25—Network flow I: Introduction
Reading: §7.1
2/27—Network flow II
Reading: §7.1
3/02—Network flow III
Reading: §7.5–7.6
3/04—Network flow IV
Reading: §7.7
3/05—Homework 4 due
3/06—Network flow V
Reading: §7.2
3/09—Network flow VI
Reading: §7.10
3/11—NP completeness I: Polynomial-time reductions
Reading: §8.1–8.2
3/12—Homework 5 due
3/13—NP completeness II: Reduction from 3-Sat to Independent Set
Reading: §8.3–8.4
3/16—NP completeness II: Max-Cut
3/18—NP completeness II: Traveling Salesperson
Reading: §8.5
3/20—NP completeness II: Knapsack
Reading: §8.8, (supplementary notes)
3/23—Turing Machines I: Definition and Examples
(supplementary notes, first 10 pages)
3/25—Turing Machines II: Universal Turing machine
(supplementary notes, first 10 pages)
3/27—Turing Machines III: Church–Turing thesis
(supplementary notes, first 10 pages)
4/06—Turing Machines IV: Halting problem is undecidable
(supplementary notes, first 10 pages)
4/08—Review session for prelim 2
4/10—Turing Machines V: Satisfiability is NP-complete
4/13—Approximation algorithms I: Introduction, Vertex Cover
Reading: §10.1
4/15—Approximation algorithms II: Greedy approximation for Set Cover, pricing method
Reading: §11.3
4/17—Approximation algorithms III: Knapsack approximation scheme
Reading: §11.8
4/20—Approximation algorithms IV: Linear program for Weighted Vertex Cover
Reading: §11.6
4/22—Approximation algorithms IV: Linear program for Max Coverage
4/24—Approximation algorithms V: Randomization and Local Search for Max Cut
Reading: §12.4. See also supplementary notes.
4/29—Nash Equilibria and Local Search
Reading: §12.7.
5/1—Best Expert algorithm
5/4—The Secretary Problem
4/29—Input-Output queuing via Stable Matching
Reading: §Epilogue